/*
 * By: Werner Schuster (murphee)
 * 
 * Copyright (c) 2005-2006 Werner Schuster (murphee)
 * 
 * This file is part of the EclipseShell project. EclipseShell is subject 
 * to the Eclipse Public License (EPL) available at
 * http://www.eclipse.org/org/documents/epl-v10.php
 * or in the file /epl-v10.html in the source for other info
 * see the /eclipseshell.license file
 */
package net.sf.eclipseshell.extensions;

import java.io.OutputStream;

import org.eclipse.core.resources.IResource;

public interface IExecutionEnvironmentProvider {
	
	
	
	public IExecutionEnvironment createNew(IResource file, OutputStream consoleOutput, String mode);

	/**
	 * Returns @see IExecutionEnvironment objects for environments that are already running
	 * and that this Provider can connect to. For example, a provider might check if there
	 * are Java 6+ processes running and offer these as processes that it can connect to.
	 * Other examples would be running mysql servers that can be connected to, ...
	 * 
	 * @return an array of IExecutionEnvironment OR an EMPTY IExecutionEnvironment[]; 
	 */
	public IExecutionEnvironment[] getPossibleExecutionEnvironments();
	
//	// TODO: add a wrapInComment() method that takes a String and returns 
	// a String containing the argument in a comment formatted for the environments language;
	// needed to insert region delimiters;
}
